<?php

declare(strict_types=1);

namespace app\common\model;

use think\Model;

class OperationLog extends Model
{
    protected $pk = 'log_id';
    protected $name = 'operation_log';

    // 自动时间戳
    protected $autoWriteTimestamp = true;
    protected $createTime = 'create_time';
    protected $updateTime = false;

    // 自动JSON序列化字段
    protected $json = ['params', 'request_header', 'result', 'response_header', 'extend'];
    protected $jsonAssoc = true;

    /**
     * 参数序列化
     */
    public function setParamsAttr($value)
    {
        return is_array($value) ? json_encode($value, JSON_UNESCAPED_UNICODE) : $value;
    }

    /**
     * 请求头序列化
     */
    public function setRequestHeaderAttr($value)
    {
        return is_array($value) ? json_encode($value, JSON_UNESCAPED_UNICODE) : $value;
    }

    /**
     * 响应结果序列化
     */
    public function setResultAttr($value)
    {
        return is_array($value) ? json_encode($value, JSON_UNESCAPED_UNICODE) : $value;
    }

    /**
     * 响应头序列化
     */
    public function setResponseHeaderAttr($value)
    {
        return is_array($value) ? json_encode($value, JSON_UNESCAPED_UNICODE) : $value;
    }
}
